/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.controlador;

import com.ipartek.formacion.gestformwww.modelo.ModeloDiaClase;
import com.ipartek.formacion.gestformwww.modelo.beans.Calificacion;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Alvaro, Borja y Karmele
 */
public class BorrarCalificacionesAccion implements Accion {

   
    private final String visualizaralumno = "visualizar-alumno-accion";

    public AccionRouter ejecuta(HttpServlet servlet, HttpServletRequest request, HttpServletResponse response) {
        HttpSession sesion = request.getSession();
         AccionServlet as=(AccionServlet) servlet;
        AccionRouter router = null;
        ArrayList<String> mensajes = new ArrayList<String>();
        ArrayList<String> errores = new ArrayList<String>();
        String[] fechas;
        String[] valores;
         Calificacion cali = new Calificacion();
        ArrayList<Calificacion> listacali=new ArrayList<Calificacion>();

        boolean ejecutar = Verificador.sinReenvio("aleatorioBorrarCalificaciones", sesion, request);

        if (sesion.getAttribute("usuario") != null && request.getMethod().equalsIgnoreCase("POST")) {
            ModeloDiaClase modelo = (ModeloDiaClase) servlet.getServletContext().getAttribute("ModeloDiaClase");

            if (request.getParameterValues("fechas") != null) {
                fechas=(String[])request.getParameterValues("fechas");
                for(String s:fechas){
                 cali = new Calificacion();
                 cali.setCurId(Integer.parseInt(request.getParameter("idCurso")));
                 cali.setAluId(Integer.parseInt(request.getParameter("idAlumno")));
                 cali.setCalFch(Timestamp.valueOf(s));
                 listacali.add(cali);
                }
                try {
                   modelo.borrarCalificacion(listacali);
                   mensajes.add("borrar-calificacion-correcto");
               } catch (GestorFormacionExcepcion ex) {
                   Logger.getLogger(BorrarCalificacionesAccion.class.getName()).log(Level.SEVERE, null, ex);
                  sesion.setAttribute("excepciones", ex.getMessage());
               }
            }else{
               errores.add("error-seleccionado");
            }
            request.setAttribute("errores",errores);
            sesion.setAttribute("mensajes",mensajes);
            try {
                router=as.getFactory().getAction(as.getNombreClaseRecurso(visualizaralumno),servlet.getClass().getClassLoader()).ejecuta(servlet, request, response);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(BorrarCalificacionesAccion.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(BorrarCalificacionesAccion.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(BorrarCalificacionesAccion.class.getName()).log(Level.SEVERE, null, ex);
            }
           
            }else{
            router = new AccionRouter("inicio");
        }
        return router;
    }

  
}
